package h0730;

import java.util.Scanner;

public class UserScheduling {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 读取用户数量
        int n = scanner.nextInt();
        int[][] costs = new int[n][3];
        
        // 读取每个用户的三种策略的消耗
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < 3; j++) {
                costs[i][j] = scanner.nextInt();
            }
        }
        
        // 初始化动态规划数组
        int[][] dp = new int[n][3];
        
        // 第一行初始化为各个策略的消耗
        dp[0][0] = costs[0][0];
        dp[0][1] = costs[0][1];
        dp[0][2] = costs[0][2];
        
        // 从第二个用户开始，逐步计算每个用户选择不同策略的最小消耗
        for (int i = 1; i < n; i++) {
            dp[i][0] = costs[i][0] + Math.min(dp[i - 1][1], dp[i - 1][2]);
            dp[i][1] = costs[i][1] + Math.min(dp[i - 1][0], dp[i - 1][2]);
            dp[i][2] = costs[i][2] + Math.min(dp[i - 1][0], dp[i - 1][1]);
        }
        
        // 最后的结果是最后一个用户选择三种策略的最小值
        int result = Math.min(dp[n - 1][0], Math.min(dp[n - 1][1], dp[n - 1][2]));
        System.out.println(result);
        
        scanner.close();
    }
}
